#include "CalService.hpp"
#include "Protocol.hpp"
#include "Daemon.hpp"

void debug(int socket, const Ser_Change::DataConversion& ser)
{
    // std::equal 或者 std::string::compare
    // 当然符号处理方法 目前只完成了“+”的实现，后面我们可以用swith补充-，*，/。
    if (ser._synbol.compare("+") == 0) 
    {
        Ser_Change::Response ret(ser._a + ser._b, 2);
        
        MySocket it;
        it.Send(socket, ret.serialize());
        Logmessage(NOWAIN, "计算完成 %d %s %d = %d", ser._a, ser._synbol.c_str(), ser._b, ret._result);
        // Logmessage(NOWAIN, "计算完成 结果序列为：%s", ret.serialize().c_str());
    }else
    {
        std::cout << "debug fail" << std::endl;
    }
}

int main(int argc, char* args[])
{
    if (argc != 2)
    {
        [args]{ printf("%s需要 port\n", args[0]);}();
        exit(1);
    }
    std::unique_ptr<Server> ms(new Server(atoi(args[1])));
    ms->Bind_func(debug);
    MyDaemon();
    ms->Stat();

    return 0;
}